<script>
  import { mapMutations, mapActions, mapState } from 'vuex'
  export default {
    computed: {
      ...mapState('user', ['token', 'userInfo']),
    },
    methods: {
      ...mapMutations('global', ['setSystemInfo', 'setShowInfo', 'setDeviceInfo', 'setAppConfig']),
      ...mapActions('user', ['getUserInfoFn']),
      getSystemInfo(){
				// 获取系统信息
				const systemInfo = wx.getSystemInfoSync();
				// 胶囊按钮位置信息
				const menuButtonInfo = wx.getMenuButtonBoundingClientRect();
				// 导航栏高度 = 状态栏高度 + 44
				const data = {
					navBarHeight: systemInfo.statusBarHeight + 44,
					menuRight: systemInfo.screenWidth - menuButtonInfo.right,
					menuTop: menuButtonInfo.top,
					menuHeight: menuButtonInfo.height
				}
				this.setSystemInfo(data)
				
				// 登录设备信息 --- 用于埋点自主上报接口
				const deviceInfo = {
					brand: systemInfo.brand, // 设备品牌
					model: systemInfo.model, // 设备型号
					system: systemInfo.system, // 操作系统及版本
				}
				this.setDeviceInfo(deviceInfo)
			},
      getUpdate() {
        const updateManager = uni.getUpdateManager()
        
        updateManager.onUpdateReady(function (res) {
          uni.showModal({
            title: '更新提示',
            content: '新版本已经准备好，是否重启应用？',
            success(res) {
              if (res.confirm) {
                // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                updateManager.applyUpdate();
              }
            }
          })
        })
      },
			async getAppId() {
				const res = await this.$request({
					method: 'GET',
					url: '/user-center/wxMa/getWxMaConfig',
				})
				// 设置小程序的id 和 密钥
				this.setAppConfig(res.datas)
			},
			// 保存第三方跳转记录
			async channelRecord(data){
				const res = await this.$request({
					method: 'POST',
					url: '/terminal-serve-center/wxMaChannelRecord/save',
					data
				})
			}
    },
    onLaunch: function(res) {
			// channel渠道（2-货车宝、3-信联、4-卡友地带）
			if(res.query && res.query.channel){
				const { channel, mobile = '' } = res.query
				this.channelRecord({ channel, mobile })
				uni.setStorageSync('AppLaunchQuery', { channel, mobile })
			}
			
      this.getUpdate()
			this.getSystemInfo()
			// 获取小程序id和密钥
			this.getAppId()
			
			// 埋点
			this.autoReport({
				pageName: '',
				eventCode: 'launch',
			})
    },
    onShow: function(data) {
      this.setShowInfo(data)
      if (this.token) {
        // 如果用户登录了，获取用户信息
        this.getUserInfoFn()
      }
    },
    onHide: function() {
      //
    },
  }
</script>

<style lang="scss">
  @import "@/uni_modules/uview-ui/index.scss";
  /*每个页面公共css */
  @import '@/uni_modules/uni-scss/index.scss';
  /* #ifndef APP-NVUE */
  @import '@/static/customicons.css';

  // 设置整个项目的背景色
  page {
		height: 100%;
		width: 100%;
    background-color: #f5f5f5;
  }

  /* #endif */
  .example-info {
    font-size: 14px;
    color: #333;
    padding: 10px;
  }
</style>